1. Technical Field
The present invention relates to an improved data processing system and, more particularly, to methods of programming input/output adapter settings within a data processing system.
2. Description of Related Art
Computers have become increasingly important to the economy of the present day world. Traditionally, computers have been utilized by scientists and engineers aid in understanding the physical world as well as to aid in developing and designing solutions to problems ranging from developing pharmaceuticals to building office buildings and bridges. However, computers are increasingly being used in business to accept and fill orders for goods and services, such as, via the Internet, as well as to aid in other services, such as accounting and banking.
With the increasing reliance upon computers and the every increasing pace of business and innovation, more demands are continually being placed on the performance of computers. One important area that impacts the performance of computers is the interface between the main processing and memory components of a computer and peripheral devices such as, for example, hard disk drives and network interfaces. These peripheral devices are connected to the main components of the computer through adapters. An adapter is a device that allows one system to connect to and work with another. An adapter is often a simple circuit that converts one set of signals to another; however, the term often refers to devices which are more accurately called “controllers.” For example, display adapters (video cards), network adapters (NICs) and SCSI host adapters perform extensive processing, but they are still called “adapters.”
Each adapter within a computer contains settings that must be programmed by the computer in order for the device connected to the adapter to communicate with the rest of the computer. The traditional methodology used to program adapter settings is that a series of adapters, such as PCI adapters typically are setup using system based settings. For example, PCI-based devices require their latency timer, cache line size, as well as other parameters to be initialized based on the requirements of the computer. If a computer's cache line size is 32B, then the adapter is programmed to 32B. If the computer's cache line size is 64B, then the appropriate parameters within the adapters settings are programmed to 64B.
The problem with this approach is that some devices do not function well using system based settings. For example some FC-AL adapters have problems when programmed with the system setting of 128 cache line size. With that setting, the adapter is only able to perform 0.25 MB/sec and had numerous AIX error log entries for timeout errors. However, changing the value to 64B, increased the performance by 36000% to 90 MB/sec. Therefore, a method of programming adapter settings in a manner that optimizes the performance of the adapter with the computer would be desirable.